ggplot(d, aes(x=LogReactionTime)) +
  geom_histogram(binwidth = .1,fill = "lightblue", color = "black") +
  facet_wrap(~Task)
## Warning: Removed 1 row containing non-finite outside the scale range
## (`stat_bin()`).

ggplot(d, aes(x=LogReactionTime, fill=Task)) +
  geom_density(alpha = .4)
## Warning: Removed 1 row containing non-finite outside the scale range
## (`stat_density()`).

First make the pairs, then remove non-accurate trials

otherwise, might not be getting the right order

d <- d %>%
  # filter(Accuracy == 1) %>% 
  mutate(UniqueTrial = paste(ID.true,Task,WhoseList,sep="-")) %>% 
  separate(
    ConcValCombo,            # Column to split
    into = c("ConcreteValue", "ValenceValue"),  # New column names
    sep = "-"                # Separator to split at
  )
# Process the data
# Process the data
output <- d %>%
  group_by(UniqueTrial) %>%
  mutate(
    # Create WordPair using Word column values of consecutive rows
    WordPair = paste0(Word, "-", lead(Word)),
    # Determine SwitchCostVal by comparing ValenceValue with the next row
    SwitchCostVal = case_when(
      ValenceValue == lead(ValenceValue) ~ "NoSwitch",
      ValenceValue != lead(ValenceValue) ~ "Switch",
      TRUE ~ NA_character_  # Handle edge cases
    ),
    # Determine SwitchCostConc by comparing ConcreteValue with the next row
    SwitchCostConc = case_when(
      ConcreteValue == lead(ConcreteValue) ~ "NoSwitch",
      ConcreteValue != lead(ConcreteValue) ~ "Switch",
      TRUE ~ NA_character_  # Handle edge cases
    ),
    # FirstWordRT is the ReactionTime of the current row
    FirstWordLogRT = LogReactionTime,
    # SecondWordRT is the ReactionTime of the next row
    SecondWordLogRT = lead(LogReactionTime),
    # FirstWordRT is the ReactionTime of the current row
    FirstWordRT = ReactionTime,
    # SecondWordRT is the ReactionTime of the next row
    SecondWordRT = lead(ReactionTime),
    # FirstWordRT is the ReactionTime of the current row
    FirstWordAccuracy = Accuracy,
    # SecondWordRT is the ReactionTime of the next row
    SecondWordAccuracy = lead(Accuracy),
    # create the combo column
    SwitchCombo = paste(SwitchCostConc,SwitchCostVal,sep='-'),
    RT_Difference = SecondWordLogRT - FirstWordLogRT                     # Calculate the difference between RTs
  ) %>%
  # Remove rows without valid pairings (e.g., last row in each UniqueTrial group)
  filter(!is.na(lead(Word))) %>%
  ungroup() 
# %>%
  # select(UniqueTrial, ConcreteValue, ValenceValue, WordPair, SwitchCostVal, SwitchCostConc)


# Print the resulting dataframe
table(output$SwitchCostVal)
## 
## NoSwitch   Switch 
##    13776    14508
table(output$SwitchCostConc)
## 
## NoSwitch   Switch 
##    13950    14334
table(output$SwitchCostConc,output$SwitchCostVal)
##           
##            NoSwitch Switch
##   NoSwitch     6543   7407
##   Switch       7233   7101
table(output$FirstWordAccuracy,output$SecondWordAccuracy)
##    
##         0     1
##   0  1501  2468
##   1  2442 21873

Filter out inaccurate trials

output_acc <- output %>% 
  filter((FirstWordAccuracy == 1) & (SecondWordAccuracy == 1))

nrow(output_acc)/nrow(output)*100
## [1] 77.33347

Remove outliers

# Remove subjects with ReactionTime higher than 3x IQR
summary(output_acc$SecondWordRT)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -3665.0   641.0   784.0   962.4  1037.0 90866.0
range(output_acc$SecondWordRT)
## [1] -3665 90866
hist(output_acc$SecondWordLogRT, breaks=100, col="lightblue", xlab="SecondWordLogRT (ms)",
        main="Histogram with Normal Curve")

quantile(output_acc$SecondWordLogRT, na.rm = TRUE)
##         0%        25%        50%        75%       100% 
##  0.6931472  6.4630295  6.6644090  6.9440872 11.4171412
# Check for missing or NaN values
sum(is.na(output_acc$SecondWordLogRT)) # Count of NA values
## [1] 1
sum(is.nan(output_acc$SecondWordLogRT)) # Count of NaN values
## [1] 0
IQR(output_acc$SecondWordLogRT, na.rm = TRUE)*3 # 0.7526289
## [1] 1.443173
cutoff.high <- quantile(output_acc$SecondWordLogRT, na.rm = TRUE)[4] + IQR(output_acc$SecondWordLogRT, na.rm = TRUE)*3 # 8.419261
cutoff.low <- quantile(output_acc$SecondWordLogRT, na.rm = TRUE)[2] - IQR(output_acc$SecondWordLogRT, na.rm = TRUE)*3# 6.5088838.419261


# remove subjects with ReactionTime higher than 3 x IQR
df.outliers.removed <- subset(output_acc, (output_acc$SecondWordLogRT > cutoff.low) & (output_acc$SecondWordLogRT < cutoff.high))

hist(df.outliers.removed$SecondWordLogRT, col="lightblue", xlab="SecondWordLogRT (ms)",
        main="Histogram with Normal Curve")

agr <- df.outliers.removed %>% 
  group_by(WordPair,SwitchCombo) %>% 
  mutate(MeanSecondWordLogRT = mean(SecondWordLogRT))

ggplot(df.outliers.removed, aes(SecondWordLogRT, fill=SwitchCombo)) +
  geom_density(alpha = .5)

agr <- df.outliers.removed %>% 
  group_by(WordPair,Task,SwitchCombo) %>% 
  summarize(MeanSecondWordLogRT = mean(SecondWordLogRT))
## `summarise()` has grouped output by 'WordPair', 'Task'. You can override using
## the `.groups` argument.
ggplot(agr, aes(MeanSecondWordLogRT, fill=SwitchCombo)) +
  geom_density(alpha = .5) +
  facet_wrap(~Task)

Plot the difference between First and Second Word RT as a function of SwitchCombo

# Plot the RT difference as a function of SwitchCombo
ggplot(df.outliers.removed, aes(x = SwitchCombo, y = SecondWordLogRT)) +
  geom_boxplot(fill = "lightblue", color = "darkblue", outlier.color = "red") +
  geom_jitter(width = 0.2, alpha = 0.6) +
  facet_wrap(~Task) +
  labs(
    title = "RT Difference by Switch Combo",
    x = "Switch Combo (Valence-Concreteness)",
    y = "RT Difference (ms)"
  )

  # theme_minimal() +
  # theme(axis.text.x = element_text(angle = 45, hjust = 1))


# Plot the RT difference as a function of SwitchCombo using a violin plot
ggplot(df.outliers.removed, aes(x = SwitchCombo, y = SecondWordLogRT, fill=Task)) +
  geom_violin(fill = "lightblue", color = "darkblue", trim = FALSE) +
  geom_jitter(width = 0.2, alpha = 0.6) +
  facet_wrap(~Task) +
  labs(
    title = "RT Difference by Switch Combo",
    x = "Switch Combo (Valence-Concreteness)",
    y = "Log RT for second word"
  )

First feature is Concreteness, second is Valence

agr <- df.outliers.removed %>%
    group_by(Task,SwitchCombo,WhoseList) %>%
    summarize(MeanSecondWordLogRT = mean(SecondWordLogRT), 
              CILow = ci.low(SecondWordLogRT), 
              CIHigh = ci.high(SecondWordLogRT)) %>%
    mutate(YMin = MeanSecondWordLogRT - CILow, 
           YMax = MeanSecondWordLogRT + CIHigh)
## `summarise()` has grouped output by 'Task', 'SwitchCombo'. You can override
## using the `.groups` argument.
ggplot(agr, aes(x=Task, y=MeanSecondWordLogRT,fill=SwitchCombo)) + 
    geom_violin(trim=FALSE,alpha=.4) +
    geom_jitter(shape=16, position=position_jitter(0.2))

  # guides(fill = "none")

ggplot(agr, aes(x=SwitchCombo, y=MeanSecondWordLogRT,fill=Task)) + 
    geom_violin(trim=FALSE,alpha=.4) +
    geom_jitter(shape=16, position=position_jitter(0.2))

agr <- df.outliers.removed %>%
    group_by(Task,SwitchCombo,WhoseList) %>%
    summarize(MeanSecondWordRT = mean(SecondWordRT), 
              CILow = ci.low(SecondWordRT), 
              CIHigh = ci.high(SecondWordRT)) %>%
    mutate(YMin = MeanSecondWordRT - CILow, 
           YMax = MeanSecondWordRT + CIHigh)
## `summarise()` has grouped output by 'Task', 'SwitchCombo'. You can override
## using the `.groups` argument.
dodge = position_dodge(.9)
ggplot(data=agr, aes(x=Task,y=MeanSecondWordRT,fill=SwitchCombo)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~WhoseList) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))

Look at the individual features

# Extract the first and second words from WordPair in df.outliers.removed
df.outliers.removed$FirstWord <- sub("-.*", "", df.outliers.removed$WordPair) # Part before '-'
df.outliers.removed$SecondWord <- sub(".*-", "", df.outliers.removed$WordPair) # Part after '-'

# Match with word_features and create new columns
df.outliers.removed$FirstWordCVC <- word_features$ConcValCombo[
  match(df.outliers.removed$FirstWord, word_features$Word)
]

df.outliers.removed$SecondWordCVC <- word_features$ConcValCombo[
  match(df.outliers.removed$SecondWord, word_features$Word)
]
# Subset data to all columns after (and including) "UniqueTrial"
df <- df.outliers.removed[, which(names(df.outliers.removed) == "UniqueTrial"):ncol(df.outliers.removed)]

# Split df$UniqueTrial into three new columns, keeping UniqueTrial
df <- df %>%
  separate(UniqueTrial, into = c("ID.true", "Task", "WhoseList"), sep = "-", remove = FALSE)

Overall

agr <- df %>% 
  # filter(Task == "Valence") %>% 
  group_by(Task,SwitchCombo,FirstWordCVC,SecondWordCVC) %>% 
  summarize(MeanSecondWordRT = mean(SecondWordRT), 
          CILow = ci.low(SecondWordRT), 
          CIHigh = ci.high(SecondWordRT)) %>%
  mutate(YMin = MeanSecondWordRT - CILow, 
       YMax = MeanSecondWordRT + CIHigh)
## `summarise()` has grouped output by 'Task', 'SwitchCombo', 'FirstWordCVC'. You
## can override using the `.groups` argument.
dodge = position_dodge(.9)
ggplot(data=agr, aes(x=SecondWordCVC,y=MeanSecondWordRT,fill=FirstWordCVC)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~SwitchCombo) +
  # facet_grid(FirstWordCVC~SecondWordCVC) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))

dodge = position_dodge(.9)
ggplot(data=agr, aes(x=Task,y=MeanSecondWordRT,fill=SwitchCombo)) +
  geom_bar(position=dodge,stat="identity") +
  facet_grid(FirstWordCVC~SecondWordCVC) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9)) +
  labs(
    # title = "Facet Grid Example",
    x = "Columns = Second Word ConcValCombo", 
    y = "Row = First Word ConcValCombo"
  )

Valence first

agr <- df %>% 
  filter(Task == "Valence") %>% 
  group_by(SwitchCombo,FirstWordCVC,SecondWordCVC) %>% 
  summarize(MeanSecondWordRT = mean(SecondWordRT), 
          CILow = ci.low(SecondWordRT), 
          CIHigh = ci.high(SecondWordRT)) %>%
  mutate(YMin = MeanSecondWordRT - CILow, 
       YMax = MeanSecondWordRT + CIHigh)
## `summarise()` has grouped output by 'SwitchCombo', 'FirstWordCVC'. You can
## override using the `.groups` argument.
dodge = position_dodge(.9)
ggplot(data=agr, aes(x=SecondWordCVC,y=MeanSecondWordRT,fill=FirstWordCVC)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~SwitchCombo) +
  # facet_grid(FirstWordCVC~SecondWordCVC) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))

dodge = position_dodge(.9)
ggplot(data=agr, aes(x=SwitchCombo,y=MeanSecondWordRT,fill=FirstWordCVC)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~SecondWordCVC) +
  # facet_grid(FirstWordCVC~SecondWordCVC) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))

Raw RT

agr <- df %>% 
  filter(Task == "Valence") %>% 
  group_by(WhoseList,SwitchCombo,FirstWordCVC,SecondWordCVC) %>% 
  summarize(MeanSecondWordRT = mean(SecondWordRT), 
          CILow = ci.low(SecondWordRT), 
          CIHigh = ci.high(SecondWordRT)) %>%
  mutate(YMin = MeanSecondWordRT - CILow, 
       YMax = MeanSecondWordRT + CIHigh)
## `summarise()` has grouped output by 'WhoseList', 'SwitchCombo', 'FirstWordCVC'.
## You can override using the `.groups` argument.
ggplot(agr, aes(x=FirstWordCVC, y=MeanSecondWordRT,fill=SecondWordCVC)) + 
  geom_violin(trim=FALSE,alpha=.4) +
  geom_jitter(shape=16, position=position_jitter(0.2)) +
  facet_wrap(~SwitchCombo)

LogRT

agr <- df %>% 
  filter(Task == "Valence") %>% 
  group_by(WhoseList,SwitchCombo,FirstWordCVC,SecondWordCVC) %>% 
  summarize(MeanSecondWordLogRT = mean(SecondWordLogRT), 
          CILow = ci.low(SecondWordLogRT), 
          CIHigh = ci.high(SecondWordLogRT)) %>%
  mutate(YMin = MeanSecondWordLogRT - CILow, 
       YMax = MeanSecondWordLogRT + CIHigh)
## `summarise()` has grouped output by 'WhoseList', 'SwitchCombo', 'FirstWordCVC'.
## You can override using the `.groups` argument.
ggplot(agr, aes(x=FirstWordCVC, y=MeanSecondWordLogRT,fill=SecondWordCVC)) + 
  geom_violin(trim=FALSE,alpha=.4) +
  geom_jitter(shape=16, position=position_jitter(0.2)) +
  facet_wrap(~SwitchCombo)

Concreteness

agr <- df %>% 
  filter(Task == "Concrete") %>% 
  group_by(SwitchCombo,FirstWordCVC,SecondWordCVC) %>% 
  summarize(MeanSecondWordRT = mean(SecondWordRT), 
          CILow = ci.low(SecondWordRT), 
          CIHigh = ci.high(SecondWordRT)) %>%
  mutate(YMin = MeanSecondWordRT - CILow, 
       YMax = MeanSecondWordRT + CIHigh)
## `summarise()` has grouped output by 'SwitchCombo', 'FirstWordCVC'. You can
## override using the `.groups` argument.
dodge = position_dodge(.9)
ggplot(data=agr, aes(x=SecondWordCVC,y=MeanSecondWordRT,fill=FirstWordCVC)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~SwitchCombo) +
  # facet_grid(FirstWordCVC~SecondWordCVC) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))

Raw RT

agr <- df %>% 
  filter(Task == "Concrete") %>% 
  group_by(WhoseList,SwitchCombo,FirstWordCVC,SecondWordCVC) %>% 
  summarize(MeanSecondWordRT = mean(SecondWordRT), 
          CILow = ci.low(SecondWordRT), 
          CIHigh = ci.high(SecondWordRT)) %>%
  mutate(YMin = MeanSecondWordRT - CILow, 
       YMax = MeanSecondWordRT + CIHigh)
## `summarise()` has grouped output by 'WhoseList', 'SwitchCombo', 'FirstWordCVC'.
## You can override using the `.groups` argument.
ggplot(agr, aes(x=SecondWordCVC, y=MeanSecondWordRT,fill=FirstWordCVC)) + 
  geom_violin(trim=FALSE,alpha=.4) +
  geom_jitter(shape=16, position=position_jitter(0.2)) +
  facet_wrap(~SwitchCombo)

LogRT

agr <- df %>% 
  filter(Task == "Concrete") %>% 
  group_by(WhoseList,SwitchCombo,FirstWordCVC,SecondWordCVC) %>% 
  summarize(MeanSecondWordLogRT = mean(SecondWordLogRT), 
          CILow = ci.low(SecondWordLogRT), 
          CIHigh = ci.high(SecondWordLogRT)) %>%
  mutate(YMin = MeanSecondWordLogRT - CILow, 
       YMax = MeanSecondWordLogRT + CIHigh)
## `summarise()` has grouped output by 'WhoseList', 'SwitchCombo', 'FirstWordCVC'.
## You can override using the `.groups` argument.
ggplot(agr, aes(x=SecondWordCVC, y=MeanSecondWordLogRT,fill=FirstWordCVC)) + 
  geom_violin(trim=FALSE,alpha=.4) +
  geom_jitter(shape=16, position=position_jitter(0.2)) +
  facet_wrap(~SwitchCombo)

Analysis

convert everything to factors

# names(center)

m = lmer(SecondWordLogRT ~ cTask*SwitchCombo + (1|WordPair) + (1|ID.true), data=center)
summary(m)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: SecondWordLogRT ~ cTask * SwitchCombo + (1 | WordPair) + (1 |  
##     ID.true)
##    Data: center
## 
## REML criterion at convergence: 13547.9
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -5.5260 -0.6328 -0.1627  0.4550  5.2896 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  WordPair (Intercept) 0.004307 0.06563 
##  ID.true  (Intercept) 0.052135 0.22833 
##  Residual             0.101654 0.31883 
## Number of obs: 21717, groups:  WordPair, 7258; ID.true, 176
## 
## Fixed effects:
##                                    Estimate Std. Error         df t value
## (Intercept)                       6.750e+00  1.801e-02  1.946e+02 374.815
## cTask                            -1.452e-01  9.217e-03  2.146e+04 -15.755
## SwitchComboNoSwitch-Switch        3.130e-02  6.738e-03  4.972e+03   4.645
## SwitchComboSwitch-NoSwitch        3.170e-02  6.845e-03  4.891e+03   4.631
## SwitchComboSwitch-Switch          4.969e-02  6.846e-03  5.050e+03   7.259
## cTask:SwitchComboNoSwitch-Switch  4.818e-03  1.259e-02  2.145e+04   0.383
## cTask:SwitchComboSwitch-NoSwitch -6.707e-02  1.281e-02  2.139e+04  -5.237
## cTask:SwitchComboSwitch-Switch   -4.706e-02  1.281e-02  2.143e+04  -3.674
##                                  Pr(>|t|)    
## (Intercept)                       < 2e-16 ***
## cTask                             < 2e-16 ***
## SwitchComboNoSwitch-Switch       3.48e-06 ***
## SwitchComboSwitch-NoSwitch       3.74e-06 ***
## SwitchComboSwitch-Switch         4.50e-13 ***
## cTask:SwitchComboNoSwitch-Switch 0.701849    
## cTask:SwitchComboSwitch-NoSwitch 1.65e-07 ***
## cTask:SwitchComboSwitch-Switch   0.000239 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr) cTask  SCNS-S SCS-NS SwCS-S cT:SCN cT:SCS-N
## cTask        0.015                                            
## SwtchCmNS-S -0.198 -0.031                                     
## SwtchCmS-NS -0.194 -0.033  0.518                              
## SwtchCmbS-S -0.196 -0.034  0.518  0.512                       
## cTsk:SCNS-S -0.009 -0.719  0.025  0.023  0.023                
## cTsk:SCS-NS -0.008 -0.706  0.023  0.004  0.022  0.517         
## cTsk:SwCS-S -0.008 -0.704  0.023  0.022  0.012  0.518  0.510

In Valence

# names(center)

m = lmer(SecondWordLogRT ~ SwitchCombo + (1|WordPair) + (1|ID.true), data=center_val)
summary(m)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: SecondWordLogRT ~ SwitchCombo + (1 | WordPair) + (1 | ID.true)
##    Data: center_val
## 
## REML criterion at convergence: 4143.4
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -5.0570 -0.6095 -0.1673  0.4017  6.2554 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  WordPair (Intercept) 0.005675 0.07533 
##  ID.true  (Intercept) 0.062938 0.25088 
##  Residual             0.072624 0.26949 
## Number of obs: 12297, groups:  WordPair, 5837; ID.true, 151
## 
## Fixed effects:
##                             Estimate Std. Error        df t value Pr(>|t|)    
## (Intercept)                6.681e+00  2.129e-02 1.604e+02 313.848  < 2e-16 ***
## SwitchComboNoSwitch-Switch 3.550e-02  7.779e-03 4.474e+03   4.563 5.17e-06 ***
## SwitchComboSwitch-NoSwitch 3.060e-03  7.833e-03 4.352e+03   0.391    0.696    
## SwitchComboSwitch-Switch   3.167e-02  7.861e-03 4.476e+03   4.028 5.71e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr) SCNS-S SCS-NS
## SwtchCmNS-S -0.196              
## SwtchCmS-NS -0.194  0.531       
## SwtchCmbS-S -0.194  0.531  0.527
# names(center)

m = lmer(SecondWordLogRT ~ FirstWordCVC*SecondWordCVC + (1|WordPair) + (1|ID.true), data=center_val)
summary(m)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: SecondWordLogRT ~ FirstWordCVC * SecondWordCVC + (1 | WordPair) +  
##     (1 | ID.true)
##    Data: center_val
## 
## REML criterion at convergence: 4188.4
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -5.0415 -0.6116 -0.1685  0.4058  6.1922 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  WordPair (Intercept) 0.005488 0.07408 
##  ID.true  (Intercept) 0.062956 0.25091 
##  Residual             0.072634 0.26951 
## Number of obs: 12297, groups:  WordPair, 5837; ID.true, 151
## 
## Fixed effects:
##                                                                Estimate
## (Intercept)                                                   6.692e+00
## FirstWordCVCabstract-positive                                 1.659e-02
## FirstWordCVCconcrete-negative                                 2.009e-02
## FirstWordCVCconcrete-positive                                 4.656e-02
## SecondWordCVCabstract-positive                                3.100e-02
## SecondWordCVCconcrete-negative                               -1.131e-02
## SecondWordCVCconcrete-positive                                1.881e-02
## FirstWordCVCabstract-positive:SecondWordCVCabstract-positive -5.348e-02
## FirstWordCVCconcrete-negative:SecondWordCVCabstract-positive -2.465e-02
## FirstWordCVCconcrete-positive:SecondWordCVCabstract-positive -9.077e-02
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-negative -8.102e-03
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-negative -3.028e-02
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-negative -3.400e-02
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-positive -6.654e-02
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-positive  1.052e-02
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-positive -9.404e-02
##                                                              Std. Error
## (Intercept)                                                   2.327e-02
## FirstWordCVCabstract-positive                                 1.456e-02
## FirstWordCVCconcrete-negative                                 1.508e-02
## FirstWordCVCconcrete-positive                                 1.602e-02
## SecondWordCVCabstract-positive                                1.443e-02
## SecondWordCVCconcrete-negative                                1.531e-02
## SecondWordCVCconcrete-positive                                1.600e-02
## FirstWordCVCabstract-positive:SecondWordCVCabstract-positive  1.966e-02
## FirstWordCVCconcrete-negative:SecondWordCVCabstract-positive  2.050e-02
## FirstWordCVCconcrete-positive:SecondWordCVCabstract-positive  2.158e-02
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-negative  2.064e-02
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-negative  2.235e-02
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-negative  2.274e-02
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-positive  2.163e-02
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-positive  2.266e-02
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-positive  2.448e-02
##                                                                      df t value
## (Intercept)                                                   2.286e+02 287.535
## FirstWordCVCabstract-positive                                 4.442e+03   1.140
## FirstWordCVCconcrete-negative                                 4.296e+03   1.333
## FirstWordCVCconcrete-positive                                 4.369e+03   2.907
## SecondWordCVCabstract-positive                                4.427e+03   2.149
## SecondWordCVCconcrete-negative                                4.334e+03  -0.739
## SecondWordCVCconcrete-positive                                4.437e+03   1.176
## FirstWordCVCabstract-positive:SecondWordCVCabstract-positive  4.337e+03  -2.721
## FirstWordCVCconcrete-negative:SecondWordCVCabstract-positive  4.336e+03  -1.203
## FirstWordCVCconcrete-positive:SecondWordCVCabstract-positive  4.236e+03  -4.206
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-negative  4.272e+03  -0.393
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-negative  4.558e+03  -1.355
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-negative  4.321e+03  -1.495
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-positive  4.338e+03  -3.076
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-positive  4.307e+03   0.464
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-positive  4.402e+03  -3.842
##                                                              Pr(>|t|)    
## (Intercept)                                                   < 2e-16 ***
## FirstWordCVCabstract-positive                                0.254494    
## FirstWordCVCconcrete-negative                                0.182759    
## FirstWordCVCconcrete-positive                                0.003665 ** 
## SecondWordCVCabstract-positive                               0.031697 *  
## SecondWordCVCconcrete-negative                               0.460106    
## SecondWordCVCconcrete-positive                               0.239688    
## FirstWordCVCabstract-positive:SecondWordCVCabstract-positive 0.006543 ** 
## FirstWordCVCconcrete-negative:SecondWordCVCabstract-positive 0.229171    
## FirstWordCVCconcrete-positive:SecondWordCVCabstract-positive 2.66e-05 ***
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-negative 0.694646    
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-negative 0.175508    
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-negative 0.135034    
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-positive 0.002111 ** 
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-positive 0.642539    
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-positive 0.000124 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation matrix not shown by default, as p = 16 > 12.
## Use print(x, correlation=TRUE)  or
##     vcov(x)        if you need it

In Concrete

# names(center)

m = lmer(SecondWordLogRT ~ SwitchCombo + (1|WordPair) + (1|ID.true), data=center_conc)
summary(m)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: SecondWordLogRT ~ SwitchCombo + (1 | WordPair) + (1 | ID.true)
##    Data: center_conc
## 
## REML criterion at convergence: 7225.5
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.9542 -0.6593 -0.1498  0.4903  4.6421 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  WordPair (Intercept) 0.006813 0.08254 
##  ID.true  (Intercept) 0.073100 0.27037 
##  Residual             0.112249 0.33504 
## Number of obs: 9420, groups:  WordPair, 5064; ID.true, 157
## 
## Fixed effects:
##                             Estimate Std. Error        df t value Pr(>|t|)    
## (Intercept)                6.820e+00  2.298e-02 1.821e+02 296.710  < 2e-16 ***
## SwitchComboNoSwitch-Switch 3.085e-02  1.047e-02 3.427e+03   2.947  0.00323 ** 
## SwitchComboSwitch-NoSwitch 5.927e-02  1.079e-02 3.505e+03   5.492 4.25e-08 ***
## SwitchComboSwitch-Switch   6.445e-02  1.074e-02 3.559e+03   6.001 2.16e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr) SCNS-S SCS-NS
## SwtchCmNS-S -0.235              
## SwtchCmS-NS -0.227  0.500       
## SwtchCmbS-S -0.228  0.502  0.495
# names(center)

m = lmer(SecondWordLogRT ~ FirstWordCVC*SecondWordCVC + (1|WordPair) + (1|ID.true), data=center_val)
summary(m)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: SecondWordLogRT ~ FirstWordCVC * SecondWordCVC + (1 | WordPair) +  
##     (1 | ID.true)
##    Data: center_val
## 
## REML criterion at convergence: 4188.4
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -5.0415 -0.6116 -0.1685  0.4058  6.1922 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  WordPair (Intercept) 0.005488 0.07408 
##  ID.true  (Intercept) 0.062956 0.25091 
##  Residual             0.072634 0.26951 
## Number of obs: 12297, groups:  WordPair, 5837; ID.true, 151
## 
## Fixed effects:
##                                                                Estimate
## (Intercept)                                                   6.692e+00
## FirstWordCVCabstract-positive                                 1.659e-02
## FirstWordCVCconcrete-negative                                 2.009e-02
## FirstWordCVCconcrete-positive                                 4.656e-02
## SecondWordCVCabstract-positive                                3.100e-02
## SecondWordCVCconcrete-negative                               -1.131e-02
## SecondWordCVCconcrete-positive                                1.881e-02
## FirstWordCVCabstract-positive:SecondWordCVCabstract-positive -5.348e-02
## FirstWordCVCconcrete-negative:SecondWordCVCabstract-positive -2.465e-02
## FirstWordCVCconcrete-positive:SecondWordCVCabstract-positive -9.077e-02
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-negative -8.102e-03
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-negative -3.028e-02
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-negative -3.400e-02
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-positive -6.654e-02
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-positive  1.052e-02
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-positive -9.404e-02
##                                                              Std. Error
## (Intercept)                                                   2.327e-02
## FirstWordCVCabstract-positive                                 1.456e-02
## FirstWordCVCconcrete-negative                                 1.508e-02
## FirstWordCVCconcrete-positive                                 1.602e-02
## SecondWordCVCabstract-positive                                1.443e-02
## SecondWordCVCconcrete-negative                                1.531e-02
## SecondWordCVCconcrete-positive                                1.600e-02
## FirstWordCVCabstract-positive:SecondWordCVCabstract-positive  1.966e-02
## FirstWordCVCconcrete-negative:SecondWordCVCabstract-positive  2.050e-02
## FirstWordCVCconcrete-positive:SecondWordCVCabstract-positive  2.158e-02
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-negative  2.064e-02
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-negative  2.235e-02
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-negative  2.274e-02
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-positive  2.163e-02
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-positive  2.266e-02
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-positive  2.448e-02
##                                                                      df t value
## (Intercept)                                                   2.286e+02 287.535
## FirstWordCVCabstract-positive                                 4.442e+03   1.140
## FirstWordCVCconcrete-negative                                 4.296e+03   1.333
## FirstWordCVCconcrete-positive                                 4.369e+03   2.907
## SecondWordCVCabstract-positive                                4.427e+03   2.149
## SecondWordCVCconcrete-negative                                4.334e+03  -0.739
## SecondWordCVCconcrete-positive                                4.437e+03   1.176
## FirstWordCVCabstract-positive:SecondWordCVCabstract-positive  4.337e+03  -2.721
## FirstWordCVCconcrete-negative:SecondWordCVCabstract-positive  4.336e+03  -1.203
## FirstWordCVCconcrete-positive:SecondWordCVCabstract-positive  4.236e+03  -4.206
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-negative  4.272e+03  -0.393
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-negative  4.558e+03  -1.355
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-negative  4.321e+03  -1.495
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-positive  4.338e+03  -3.076
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-positive  4.307e+03   0.464
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-positive  4.402e+03  -3.842
##                                                              Pr(>|t|)    
## (Intercept)                                                   < 2e-16 ***
## FirstWordCVCabstract-positive                                0.254494    
## FirstWordCVCconcrete-negative                                0.182759    
## FirstWordCVCconcrete-positive                                0.003665 ** 
## SecondWordCVCabstract-positive                               0.031697 *  
## SecondWordCVCconcrete-negative                               0.460106    
## SecondWordCVCconcrete-positive                               0.239688    
## FirstWordCVCabstract-positive:SecondWordCVCabstract-positive 0.006543 ** 
## FirstWordCVCconcrete-negative:SecondWordCVCabstract-positive 0.229171    
## FirstWordCVCconcrete-positive:SecondWordCVCabstract-positive 2.66e-05 ***
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-negative 0.694646    
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-negative 0.175508    
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-negative 0.135034    
## FirstWordCVCabstract-positive:SecondWordCVCconcrete-positive 0.002111 ** 
## FirstWordCVCconcrete-negative:SecondWordCVCconcrete-positive 0.642539    
## FirstWordCVCconcrete-positive:SecondWordCVCconcrete-positive 0.000124 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation matrix not shown by default, as p = 16 > 12.
## Use print(x, correlation=TRUE)  or
##     vcov(x)        if you need it